// pages/taxPlanning/index.js
Page({
  data: {
    income: '',
    deductions: '',
    otherIncome: '',
    taxCredits: '',
    planResult: '',
    tips: [],
    loading: false
  },

  onLoad: function (options) {
    // 页面加载时的初始化操作
  },

  onReady: function () {
    // 页面渲染完成后的操作
  },

  onShow: function () {
    // 页面显示时的操作
  },

  onHide: function () {
    // 页面隐藏时的操作
  },

  onUnload: function () {
    // 页面卸载时的操作
  },

  onPullDownRefresh: function () {
    // 用户下拉刷新时的操作
  },

  onReachBottom: function () {
    // 用户上拉触底时的操作
  },

  onShareAppMessage: function () {
    // 用户点击右上角分享时的操作
  },

  // 输入框事件处理
  onIncomeInput: function(e) {
    this.setData({
      income: e.detail.value
    });
  },

  onDeductionsInput: function(e) {
    this.setData({
      deductions: e.detail.value
    });
  },

  onOtherIncomeInput: function(e) {
    this.setData({
      otherIncome: e.detail.value
    });
  },

  onTaxCreditsInput: function(e) {
    this.setData({
      taxCredits: e.detail.value
    });
  },

  // 生成税务筹划方案
  generatePlan: function() {
    const { income, deductions, otherIncome, taxCredits } = this.data;
    
    // 验证输入
    if (!income) {
      wx.showToast({
        title: '请输入月收入',
        icon: 'none'
      });
      return;
    }
    
    // 显示加载状态
    this.setData({
      loading: true,
      planResult: '',
      tips: []
    });
    
    // 构造发送给API的数据
    const userData = {
      income: parseFloat(income) || 0,
      deductions: parseFloat(deductions) || 0,
      otherIncome: parseFloat(otherIncome) || 0,
      taxCredits: parseFloat(taxCredits) || 0
    };
    
    // 调用DeepSeek API
    this.callDeepSeekAPI(userData);
  },

  // 调用DeepSeek API
  callDeepSeekAPI: function(userData) {
    const apiKey = 'sk-68587461c88d4e1ab52f51fde28805ae';
    
    // 构造提示词
    const prompt = `作为一名专业的税务筹划师，请根据以下用户的财务信息，为其提供个性化的税务筹划建议：
    
用户财务信息：
- 月收入：${userData.income} 元
- 专项扣除（五险一金等）：${userData.deductions} 元
- 其他收入（奖金、兼职等）：${userData.otherIncome} 元
- 可抵扣项目（子女教育、住房贷款等）：${userData.taxCredits} 元

请提供以下内容：
1. 该用户适用的税率和速算扣除数
2. 每月应缴纳的个人所得税额
3. 合理的税务筹划建议（至少3条）
4. 可以进一步优化的合法节税方法

请以清晰、易懂的语言提供专业建议，避免使用过于复杂的术语。请使用以下格式来区分不同类型的信息：
- 对于计算结果和数字信息，请用【计算】开头
- 对于重要建议，请用【重点】开头
- 对于一般性建议，请直接写内容
- 不要使用项目符号(*)或markdown格式`;
    
    // 发送请求到DeepSeek API
    wx.request({
      url: 'https://api.deepseek.com/v1/chat/completions',
      method: 'POST',
      header: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
      },
      data: {
        model: "deepseek-chat",
        messages: [
          {
            role: "system",
            content: "你是一名专业的税务筹划顾问，擅长根据个人财务状况提供合法合规的税务优化建议。请按照指定格式区分不同类型的信息，不要使用项目符号(*)或markdown格式。"
          },
          {
            role: "user",
            content: prompt
          }
        ],
        stream: false
      },
      success: (res) => {
        if (res.statusCode === 200 && res.data.choices && res.data.choices.length > 0) {
          const result = res.data.choices[0].message.content;
          this.processAPIResponse(result);
        } else {
          this.handleAPIError('API响应异常');
        }
      },
      fail: (err) => {
        this.handleAPIError('网络请求失败');
      },
      complete: () => {
        this.setData({
          loading: false
        });
      }
    });
  },

  // 处理API响应
  processAPIResponse: function(response) {
    // 格式化响应内容，添加可视化元素
    let formattedResponse = response
      .replace(/【计算】/g, '<div class="calculation-box">')
      .replace(/【重点】/g, '<div class="highlight-box">')
      .replace(/\n/g, '<br>')
      .replace(/<br><br>/g, '</div><br>')
      .replace(/<br><\/div>/g, '</div><br>');
    
    // 确保所有div标签都正确闭合
    const calculationCount = (formattedResponse.match(/<div class="calculation-box">/g) || []).length;
    const highlightCount = (formattedResponse.match(/<div class="highlight-box">/g) || []).length;
    const closeDivCount = (formattedResponse.match(/<\/div>/g) || []).length;
    
    const totalOpenDivs = calculationCount + highlightCount;
    if (totalOpenDivs > closeDivCount) {
      formattedResponse += '</div>'.repeat(totalOpenDivs - closeDivCount);
    }
    
    // 设置筹划方案结果
    this.setData({
      planResult: formattedResponse
    });
    
    // 设置一些实用提示
    this.setData({
      tips: [
        '合理利用专项附加扣除可以有效降低税负',
        '年终奖单独计税可能比合并计税更优惠',
        '适当的投资理财可以帮助合理避税',
        '及时关注税收政策变化，调整筹划策略'
      ]
    });
  },

  // 处理API错误
  handleAPIError: function(errorMessage) {
    wx.showToast({
      title: errorMessage,
      icon: 'none'
    });
    
    // 显示默认的筹划建议
    this.setData({
      planResult: `<div class="calculation-box">
根据您的收入情况，您目前适用的税率约为3%-10%，具体根据年收入确定
</div><br>
<div class="highlight-box">
建议充分利用专项附加扣除，包括子女教育、继续教育、大病医疗、住房贷款利息、住房租金和赡养老人等项目
</div><br>
合理安排收入结构，将部分收入转化为可免税或低税率的收入类型<br><br>
关注年终奖计税优惠政策，合理安排发放时间和方式<br><br>
考虑通过合规的投资方式进行税务筹划，如购买符合规定的商业健康保险等`
    });
    
    this.setData({
      tips: [
        '专项附加扣除每年可节省数千元税款',
        '年终奖单独计税政策值得合理利用',
        '商业健康保险保费可在税前扣除',
        '及时申报专项附加扣除信息'
      ]
    });
  }
});